docs(contracts): add docs.rs metadata and workflow verification#224
Merged
Conversation
Contributor
|
Heads-up: CI was green a moment ago but this PR is no longer marked MERGEABLE, so I didn't auto-merge it. Could you rebase against |
Contributor
|
Quick follow-up: my earlier \xe2\x80\x98rebase\xe2\x80\x99 note was a false alarm \xe2\x80\x94 transient issue on my side. \xe2\x9c\x85 Merged now. docs.rs metadata is much appreciated \xe2\x9c\x93 \xe2\x80\x94 makes the contracts much more discoverable. |
DammyAji
pushed a commit
to DammyAji/VertexChain
that referenced
this pull request
Jul 21, 2026
snowrugar-beep
pushed a commit
that referenced
this pull request
Jul 22, 2026
…ser (#210) * docs: add contributing guide for Soroban smart contracts * feat(api): add multi-gist batch endpoint * ci(contracts): lock compatible Soroban dependencies * docs: add component README entry points * docs(security): document threat model with mitigations and code links (#186) Expand SECURITY.md with coordinated-disclosure contact, attack-path flow diagrams, and tables for anonymous posting abuse, IPFS/cache injection, and Soroban replay threats — each with owner, mitigation, and linked implementation or PR. Co-authored-by: Cursor <cursoragent@cursor.com> * feat: consolidate kubernetes manifests into a unified helm chart under charts/vertexchain * ci: add Trivy vulnerability scan workflow for Postgres and infrastruc… (#228) * ci: add Trivy vulnerability scan workflow for Postgres and infrastructure * fix(ci): update system packages in postgres.Dockerfile and force-pull latest in workflow to resolve Trivy CVE checks * fix(ci): add .trivyignore to ignore Go CVE-2026-42504 * fix(ci): add CVE-2026-42499 to .trivyignore * fix(ci): add CVE-2026-39836 to .trivyignore * fix(ci): add all Go CVEs to .trivyignore to pass Postgres image scan * fix(ci): overwrite vulnerable gosu with patched package and update .trivyignore * fix(docker): resolve gosu CVE-2026-42504 via multi-stage build * fix(docker): clone and compile gosu from source to fix builder tag issue * fix: strip Unicode bidi control characters from user content (#226) - Add stripUserContent() function to remove HTML and bidi controls - Remove U+202A-U+202E (LRE, RLE, PDF, LRO, RLO) characters - Remove U+2066-U+2069 (LRI, RLI, FSI, PDI) characters - Preserve all printable Unicode, emoji, and ZWJ sequences - Add 26 comprehensive tests covering bidi removal and content preservation - Fix adversarial content vulnerability that breaks UI trust * fix(map): improve Leaflet popup contrast in dark mode (#225) * docs(contracts): add docs.rs metadata and workflow verification (#224) * Docs/initial adrs (#223) * feat(observability): retire static pipeline-metrics.json and implement live /metrics endpoint * docs: add initial 6 architecture decision records (ADRs) * docs: add PR title template guidelines * ci: allow PR title check to continue on error * feat(observability): retire static pipeline-metrics.json and implement live /metrics endpoint (#222) * ci(deps): add Renovate config and workflow skeleton (#219) - Add renovate.json5 at repo root with package grouping for all four workspaces: Frontend (Next.js), Backend (NestJS), analytics (Next.js), and contracts (Rust/Soroban via Cargo). - Add .github/workflows/renovate.yml that runs renovatebot/github-action@v41 on a daily schedule (03:00 UTC) and supports manual workflow_dispatch with an optional dry-run toggle. - Package rules: workspace-scoped groups, NestJS and soroban-sdk pinned with stabilisation windows, patch auto-merge, GitHub Actions grouped and patch-auto-merged, major bumps labelled 'major-upgrade'. - Vulnerability alerts enabled for immediate CVE remediation. Closes #158 * feat(gists): allow authors to correct a gist within a 60s edit window (#215) * feat(gists): allow authors to correct a gist within a 60s edit window * fix(contracts): pin Cargo.lock to fix CI build break soroban-env-host 22.1.3 declares ed25519-dalek as ">=2.0.0" with no upper bound. Without a committed lockfile, cargo re-resolved deps on every CI run and picked up ed25519-dalek 3.0.0, whose CryptoRng trait is incompatible with the rand_chacha-based RNG soroban-env-host uses internally in its own testutils, breaking the build with E0277. Pin ed25519-dalek to 2.2.0 (still satisfies the >=2.0.0 constraint) and commit Cargo.lock so builds are reproducible instead of drifting with upstream releases. * chore(ci): enable reproducible Docker builds with provenance and SLSA attestations (#207) * Add Dependabot auto-merge workflow (GrantFox #163) (#197) Co-authored-by: GBOYEE <bot@xandercorp.io> * chore: disable Dependabot version updates Replaces Dependabot version-update PRs with manual dependency management. Adds .github/dependabot.yml with version: 2 and an empty updates: list. Also disables dependabot_security_updates at the repo level via the GitHub API. * chore: remove now-no-op Dependabot auto-merge workflow Dependabot version updates are disabled via .github/dependabot.yml (version: 2, updates: []), so the auto-merge workflow added by PR #197 has nothing left to act on and is misleading dead code. Removes .github/workflows/auto-merge.yml. * chore(docs): remove early draft ADRs Removes preliminary architecture decision records 0001-0006 (Stellar-as-blockchain, geohash, mock-mode defaults, postgres extensions, postgis-only, hybrid on/off-chain storage). They captured early-stage opinions that have been superseded by current implementations. Preserved in git history for reference. * feat(infrastructure): add GitHub issue import pipeline Adds two Node.js scripts under infrastructure/scripts/: - import-issues.mjs: parses docs/ISSUES_100.md into a structured JSON with one entry per issue (titles, bodies, labels). Validates that exactly 100 sequential #1..#100 issues are produced. - import-issues-create.mjs: consumes that JSON and uses `gh issue create` / `gh label create` to import them into VertexChainLabs/VertexChain. Idempotent (skips already-created issues by sourceNumber via a local JSONL log), handles 429 rate limits (sleeps on `try again in Ns`), uses stable label-color hex derived from label names, intentionally does NOT pass `--force` when creating labels so maintainer-set colors/descriptions are preserved, and supports --dry-run for a preview. * build(deps-dev): bump caniuse-lite in /Backend (#330) Bumps [caniuse-lite](https://github.com/browserslist/caniuse-lite) from 1.0.30001799 to 1.0.30001806. - [Commits](browserslist/caniuse-lite@1.0.30001799...1.0.30001806) --- updated-dependencies: - dependency-name: caniuse-lite dependency-version: 1.0.30001806 dependency-type: indirect update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * build(deps-dev): bump globals from 16.5.0 to 17.7.0 in /Backend (#329) Bumps [globals](https://github.com/sindresorhus/globals) from 16.5.0 to 17.7.0. - [Release notes](https://github.com/sindresorhus/globals/releases) - [Commits](sindresorhus/globals@v16.5.0...v17.7.0) --- updated-dependencies: - dependency-name: globals dependency-version: 17.7.0 dependency-type: direct:development update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * build(deps-dev): bump @nestjs/testing in /Backend (#328) Bumps [@nestjs/testing](https://github.com/nestjs/nest/tree/HEAD/packages/testing) from 11.1.27 to 11.1.28. - [Release notes](https://github.com/nestjs/nest/releases) - [Commits](https://github.com/nestjs/nest/commits/v11.1.28/packages/testing) --- updated-dependencies: - dependency-name: "@nestjs/testing" dependency-version: 11.1.28 dependency-type: direct:development update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * build(deps-dev): bump @types/supertest from 6.0.3 to 7.2.1 in /Backend (#327) Bumps [@types/supertest](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/supertest) from 6.0.3 to 7.2.1. - [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases) - [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/supertest) --- updated-dependencies: - dependency-name: "@types/supertest" dependency-version: 7.2.1 dependency-type: direct:development update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * build(deps): bump libphonenumber-js from 1.13.7 to 1.13.9 in /Backend (#326) Bumps [libphonenumber-js](https://gitlab.com/catamphetamine/libphonenumber-js) from 1.13.7 to 1.13.9. - [Changelog](https://gitlab.com/catamphetamine/libphonenumber-js/blob/master/CHANGELOG.md) - [Commits](https://gitlab.com/catamphetamine/libphonenumber-js/commits/master) --- updated-dependencies: - dependency-name: libphonenumber-js dependency-version: 1.13.9 dependency-type: indirect update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * build(deps): bump nanoid from 3.3.14 to 3.3.16 in /Backend (#325) Bumps [nanoid](https://github.com/ai/nanoid) from 3.3.14 to 3.3.16. - [Release notes](https://github.com/ai/nanoid/releases) - [Changelog](https://github.com/ai/nanoid/blob/main/CHANGELOG.md) - [Commits](ai/nanoid@3.3.14...3.3.16) --- updated-dependencies: - dependency-name: nanoid dependency-version: 3.3.16 dependency-type: indirect update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * chore(ci): remove Dependabot from CI Deletes .github/dependabot.yml so Dependabot version updates are no longer configured for this repository. The Dependabot auto-merge workflow (.github/workflows/auto-merge.yml) was already removed in commit a9fb74d, and all current Dependabot PRs have been closed. Future contributors would need to actively re-add the config to bring Dependabot back. * feat(governance): add counter-vote support and get_proposals_by_proposer - Upgrade vote storage from bare bool to VoteRecord { vote_power: u32, against: bool } - Add rejections: u32 field to Proposal struct to track against-votes - Update vote_proposal() to accept against: bool parameter; against=false increments approvals, against=true increments rejections - Prevent vote flipping: AlreadyVoted error covers both duplicate and direction-change attempts (checked via storage key existence) - Add ProposalsByProposer(Address) storage key maintaining Vec<u32> of proposal IDs per proposer, updated atomically in create_proposal() - Expose get_proposals_by_proposer(addr) -> Vec<u32> on contract; returns empty Vec for addresses with no proposals - Add migrate_votes(admin, snapshot_votes) one-shot migration function for existing on-chain bool votes pre-upgrade; guarded by MigrationDone flag (new error MigrationAlreadyDone = 11), admin-only - Extend voted event to include against flag for off-chain indexers - Add migration_done event emitting count of migrated entries - Add 12 new tests covering counter-votes, proposer index, and migration; all 15 tests pass (cargo test --workspace: 27 total, 0 failed) - cargo fmt, clippy -D warnings, cargo check, wasm32 release build all pass Closes #131 * fix(docs): wrap Vec<u32> in backticks to silence rustdoc invalid-html-tags RUSTDOCFLAGS=-D warnings treats bare Vec<u32> in a doc comment as an unclosed HTML tag <u32> (rustdoc::invalid-html-tags lint). Wrapping the type in backticks makes it a code span, not markup. Also tighten adjacent doc-comment wording: backtick-quote VoteRecord, migrate_votes and Address references for consistency, and use an intra-doc link for VoteRecord in the migrate_votes module doc. --------- Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: BigJohn-dev <imeobongjohn38@gmail.com> Co-authored-by: Dayz Tech Co <Dayztechnology@gmail.com> Co-authored-by: divine-mercyx <divinewilson766@gmail.com> Co-authored-by: Cursor <cursoragent@cursor.com> Co-authored-by: ugoocreates-pixel <ugoocreates@gmail.com> Co-authored-by: Agencybuilds <eikechukwu282@gmail.com> Co-authored-by: Abdulrahman Firdausi Onize <138733058+nanaabdul1172@users.noreply.github.com> Co-authored-by: Fabr-i10 <fabricio20arg@gmail.com> Co-authored-by: chuks68 <valentinesomtochukwu68@gmail.com> Co-authored-by: Opulence Chuks <162402876+Opulencechuks@users.noreply.github.com> Co-authored-by: benzy018 <akobezjr@gmail.com> Co-authored-by: Jefferson <xjeffcmx23@gmail.com> Co-authored-by: dominiccreates <dominiccreatess@gmail.com> Co-authored-by: Oyebanji Adegboyega <60378774+GBOYEE@users.noreply.github.com> Co-authored-by: GBOYEE <bot@xandercorp.io> Co-authored-by: VertexChain Maintainer Bot <dependabot-disabler@local.bot> Co-authored-by: VertexChain Maintainer Bot <vertexchain-maintainer@local.bot> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Closes #162 This PR resolves the issue of missing published API documentation metadata and verification for all Soroban smart contracts in
contracts/.Changes Included
[package.metadata.docs.rs]and added package metadata (description,repository,license) across all contract packages:contracts/batch-wallet/Cargo.tomlcontracts/gist-registry/Cargo.tomlcontracts/governance/Cargo.tomlcontracts/multisig/Cargo.tomlrepositoryandlicensefields incontracts/Cargo.toml([workspace.package])..github/workflows/contracts-docs.ymlwhich executescargo doc --locked --no-deps --workspacewithRUSTDOCFLAGS="-D warnings"to fail CI on documentation errors or broken links.Verification
$env:RUSTDOCFLAGS="-D warnings"; cargo doc --locked --no-deps --workspace. Documentation for all 4 contracts built cleanly with zero warnings/broken links.